<?php

class VentasproductosController extends AppController {

    public $helpers = array(
        'Html',
        'Form',
        'Session',
        'Js');
    public $uses = array('Cortestubo', 'Ventasproducto','Cliente','Sucursale');
    public $name = 'Ventasproductos';
    public $componet = array('RequestHandler');
    public $layout = 'imprenta';

    public function beforeFilter() {
        parent::beforeFilter();
        $this->Auth->allow();
    }
    
    public function index($idCliente = null,$idventa =null,$idProducto = null) {
        //debug($idCliente);exit;
        if(empty($idventa)){
            $this->Ventasproducto->create();
            $this->request->data['Ventasproducto']['preciototal'] = 0;
            
            $this->request->data['Ventasproducto']['sucursale_id'] = $this->Session->read('Auth.User.sucursale_id');
            $this->request->data['Ventasproducto']['cliente_id'] = $idCliente;
            $this->request->data['Ventasproducto']['user_id'] = $this->Session->read('Auth.User.id');
            $verificasucursal = $this->Ventasproducto->find('first',array('order' => 'Ventasproducto.id DESC','conditions' => array('Ventasproducto.sucursal_transferida' => null,'Ventasproducto.sucursale_id' => $this->Session->read('Auth.User.sucursale_id'))));
            //debug($verificasucursal);exit;
            if(empty($verificasucursal))
            {
                $this->request->data['Ventasproducto']['codigoventa'] = 1;
            }
            else{
                $this->request->data['Ventasproducto']['codigoventa'] = $verificasucursal['Ventasproducto']['codigoventa']+1;
            }
            if(!empty($idCliente))
            {
                $this->Ventasproducto->save($this->data);
                $idventa = $this->Ventasproducto->getLastInsertID();
                $this->Session->setFlash('Se creo una nueva venta #'.$idventa,'msgbueno');
            }
            
            
        }
        if(!empty($idProducto))
        {
            $verificaproducto = $this->Cortestubo->find('first',array('recursive' => -1,'condition' => array('Cortestubo.id' => $idProducto,'Cortestubo.estado !=' => array('A','V'))));
            //debug($verificaproducto);exit;
            if(!empty($verificaproducto))
            {
                $paux = $this->Cortestubo->find('first',array('recursive' => -1,'conditions' => array('Cortestubo.id' => $idProducto)));
                $this->Cortestubo->id = $idProducto;
                //debug($this->request->data['Cortestubo']['estado']);exit;
                $this->request->data['Cortestubo']['estadoaux'] = $paux['Cortestubo']['estado'];
                $this->request->data['Cortestubo']['estado'] = 'V';
                $this->request->data['Cortestubo']['ventasproducto_id'] = $idventa;
                $this->Cortestubo->save($this->request->data['Cortestubo']);
            }    
        }
        $cliente = $this->Cliente->find('first',array('conditions' => array('Cliente.id' => $idCliente)));
        $venta = $this->Ventasproducto->find('first',array('recursive' => -1,'conditions' => array('Ventasproducto.id' => $idventa)));
        if(!empty($idventa))
        {
            if($venta['Ventasproducto']['cliente_id'] != $idCliente)
            {
                $this->Ventasproducto->id = $idventa;
                $this->request->data['Ventasproducto']['cliente_id'] = $idCliente;
                $this->Ventasproducto->save($this->request->data['Ventasproducto']);
            }
           $productos = $this->Cortestubo->find('all',array('recursive' => 0,'order' => 'Cortestubo.id DESC','conditions' => array('Cortestubo.ventasproducto_id' => $idventa))); 
        }
        
        //debug($idventa);exit;
        $this->set(compact('productos','cliente','idventa','idCliente','venta'));
        //debug($idventa);exit;
    }
    public function notaventa($idventa = null,$idCliente = null)
    {
        $productos = $this->Cortestubo->find('all',array('recursive' => 0,'conditions' => array('Cortestubo.ventasproducto_id' => $idventa)));
        $venta = $this->Ventasproducto->find('first',array('conditions' => array('Ventasproducto.id' => $idventa)));
        $this->set(compact('productos','venta','idventa','idCliente'));
    }
    public function notatransferencia($idventa = null,$sw = null)
    {
        $productos = $this->Cortestubo->find('all',array('recursive' => 0,'conditions' => array('Cortestubo.ventasproducto_id' => $idventa)));
        $venta = $this->Ventasproducto->find('first',array('conditions' => array('Ventasproducto.id' => $idventa)));
        $this->set(compact('productos','venta','idventa','sw'));
    }
    public function transferencias($idventa = null,$idProducto = null)
    {
        if($idventa == null)
        {
            $id_sucursal_actual = $this->Session->read('Auth.User.sucursale_id');
            $sucursales = $this->Sucursale->find('list',array('fields' => 'Sucursale.nombre','conditions' => array('Sucursale.id !=' => $id_sucursal_actual)));
        }
        else{
            
            $venta = $this->Ventasproducto->find('first',array('recursive' => 0,'conditions' => array('Ventasproducto.id' => $idventa)));
             
            if(!empty($idProducto))
            {
                $verificaproducto = $this->Cortestubo->find('first',array('recursive' => -1,'condition' => array('Cortestubo.id' => $idProducto,'Cortestubo.estado !=' => array('A','V'))));
                
                //debug($verificaproducto);exit;
                if(!empty($verificaproducto))
                {
                    $paux = $this->Cortestubo->find('first',array('recursive' => -1,'conditions' => array('Cortestubo.id' => $idProducto)));
                    $this->Cortestubo->id = $idProducto;
                    //debug($paux);exit;
                    $this->request->data['Cortestubo']['sucursal_aux'] = $paux['Cortestubo']['sucursale_id'];
                    $this->request->data['Cortestubo']['sucursale_id'] = $venta['Ventasproducto']['sucursal_transferida'];
                    $this->request->data['Cortestubo']['ventasproducto_id'] = $idventa;
                    $this->Cortestubo->save($this->request->data['Cortestubo']);
                }    
            }
            $productos = $this->Cortestubo->find('all',array('recursive' => 0,'order' => 'Cortestubo.id DESC','conditions' => array('Cortestubo.ventasproducto_id' => $idventa)));
        }
        //debug($productos);exit;
        $this->set(compact('sucursales','venta','productos'));
    }
    
    public function ajaxguarda($idProducto = null,$idventa = null)
    {
        $this->layout = 'ajax';
        //debug($this->request->data);exit;
        $this->Cortestubo->id = $idProducto;
        
        $this->Cortestubo->save($this->data);
        $productos = $this->Cortestubo->find('all',array('recursive' => 0,'order' => 'Cortestubo.id DESC','conditions' => array('Cortestubo.ventasproducto_id' => $idventa))); 
        $total = 0.00;
        foreach($productos as $p)
        {
            $total = $total + $p['Cortestubo']['precio'];
        }
        $this->Ventasproducto->id = $idventa;
        $this->request->data['Ventasproducto']['preciototal'] = $total;
        $this->Ventasproducto->save($this->request->data);
        $this->set(compact('total'));
    }
    public function ajaxpropietario($idProducto = null)
    {
        $this->layout = 'ajax';
        //debug($this->request->data);exit;
        $this->Cortestubo->id = $idProducto;
        $this->Cortestubo->save($this->request->data);
    }
    
    public function ajaxsucursal()
    {
        $this->layout = 'ajax';
       $idsucursal = $this->request->data['Ventasproducto']['sucursal_transferido'];
       
       $this->Ventasproducto->create();
       $verificasucursal = $this->Ventasproducto->find('first',array('order' => 'Ventasproducto.id DESC','conditions' => array('Ventasproducto.sucursal_transferida !=' => null)));
            //debug($verificasucursal);exit;
            if(empty($verificasucursal))
            {
                $this->request->data['Ventasproducto']['codigoventa'] = 1;
            }
            else{
                $this->request->data['Ventasproducto']['codigoventa'] = $verificasucursal['Ventasproducto']['codigoventa']+1;
            }
            $this->request->data['Ventasproducto']['preciototal'] = 0;
            $this->request->data['Ventasproducto']['sucursale_id'] = $this->Session->read('Auth.User.sucursale_id');
            $this->request->data['Ventasproducto']['user_id'] = $this->Session->read('Auth.User.id');
            $this->request->data['Ventasproducto']['sucursal_transferida'] = $idsucursal;
            $this->Ventasproducto->save($this->data);
            $idsucursal = $this->Ventasproducto->getLastInsertID();
        //debug($idsucursal);exit;
        $this->set(compact('idsucursal'));
    }
    
    public function quita($idventa = null,$idProducto = null,$idCliente = null)
    {
        //debug($this->request->data);exit;
        if($idCliente == null)
        {
            $this->Cortestubo->id = $idProducto;
            $paux = $this->Cortestubo->find('first',array('recursive' => -1,'conditions' => array('Cortestubo.id' => $idProducto)));
            $this->request->data['Cortestubo']['sucursale_id'] =$paux['Cortestubo']['sucursal_aux'];
            $this->request->data['Cortestubo']['ventasproducto_id'] = null;
            $this->Cortestubo->save($this->data);
            
            $this->redirect(array('controller' => 'Ventasproductos','action' => 'transferencias',$idventa));
        }
        else{
            $this->Cortestubo->id = $idProducto;
            $paux = $this->Cortestubo->find('first',array('recursive' => -1,'conditions' => array('Cortestubo.id' => $idProducto)));
            $this->request->data['Cortestubo']['estado'] =$paux['Cortestubo']['estadoaux'];
            $this->request->data['Cortestubo']['precio'] = 0;
            $this->request->data['Cortestubo']['ventasproducto_id'] = null;
            $this->Cortestubo->save($this->data);
            $productos = $this->Cortestubo->find('all',array('recursive' => 0,'order' => 'Cortestubo.id DESC','conditions' => array('Cortestubo.ventasproducto_id' => $idventa))); 
            $total = 0.00;
            foreach($productos as $p)
            {
                $total = $total + $p['Cortestubo']['precio'];
            }
            $this->Ventasproducto->id = $idventa;
            $this->request->data['Ventasproducto']['preciototal'] = $total;
            $this->Ventasproducto->save($this->request->data);
            $this->redirect(array('controller' => 'Ventasproductos','action' => 'index',$idCliente,$idventa));
        }
        
        $this->set(compact('total'));
    }
    public function cancelaventa($idventa = null,$sw = null)
    {
        if($sw =! null)
        {
            $productos = $this->Cortestubo->find('all',array('recursive' => 0,'order' => 'Cortestubo.id DESC','conditions' => array('Cortestubo.ventasproducto_id' => $idventa))); 
            foreach($productos as $p)
            {
                $idProducto = $p['Cortestubo']['id'];
                $this->Cortestubo->id = $idProducto;
                $paux = $this->Cortestubo->find('first',array('recursive' => -1,'conditions' => array('Cortestubo.id' => $idProducto)));
                $this->request->data['Cortestubo']['sucursale_id'] =$paux['Cortestubo']['sucursal_aux'];
                $this->request->data['Cortestubo']['ventasproducto_id'] = null;
                $this->Cortestubo->save($this->data);
            }
            $this->Ventasproducto->delete($idventa);
            $this->Session->setFlash('Se elimino correctamente!!!!','msgerror');
            $this->redirect(array('controller' => 'Ventasproductos','action' => 'listaventas'));
        }
        else{
            $productos = $this->Cortestubo->find('all',array('recursive' => 0,'order' => 'Cortestubo.id DESC','conditions' => array('Cortestubo.ventasproducto_id' => $idventa))); 
            foreach($productos as $p)
            {
                $idProducto = $p['Cortestubo']['id'];
                $this->Cortestubo->id = $idProducto;
                $paux = $this->Cortestubo->find('first',array('recursive' => -1,'conditions' => array('Cortestubo.id' => $idProducto)));
                $this->request->data['Cortestubo']['estado'] =$paux['Cortestubo']['estadoaux'];
                $this->request->data['Cortestubo']['precio'] = 0;
                $this->request->data['Cortestubo']['ventasproducto_id'] = null;
                $this->Cortestubo->save($this->data);
            }
            $this->Ventasproducto->delete($idventa);
            $this->Session->setFlash('Se elimino correctamente!!!!','msgerror');
            $this->redirect(array('controller' => 'Ventasproductos','action' => 'listatransferencias'));
        }
        
        
    }
    public function ajaxlistado($idventa = null)
    {
        $this->layout = 'ajax';
        //debug($idventa);exit;
        $clientes = $this->Cliente->find('all',array('conditions' => array('Cliente.nombre LIKE' => '%'.$this->request->data['Cliente']['nombre'].'%')));
        //debug($clientes);exit;
        $this->set(compact('clientes','idventa'));
    }
    public function ajaxproductos($idCliente = null,$idventa = null)
    {
        $this->layout = 'ajax';
        //debug($idCliente);exit;
        //$productos = $this->Cortestubo->find('all',array('recursive' => 0,'conditions' => array('Cortestubo.estado !=' => array('A','V','N','C'))));
        //debug($productos);exit;
        $this->set(compact('idCliente','idventa'));
    }
    public function ajaxproductostransferencias($idventa = null)
    {
        $this->layout = 'ajax';
        //debug($idventa);exit;
        //$productos = $this->Cortestubo->find('all',array('recursive' => 0,'conditions' => array('Cortestubo.estado !=' => array('A','V','N','C'))));
        //debug($productos);exit;
        $this->set(compact('idventa'));
    }
    public function ajaxcliente($idCliente = null)
    {
        $this->layout = 'ajax';
        //$productos = $this->Cortestubo->find('all',array('recursive' => 0,'conditions' => array('Cortestubo.estado !=' => array('A','V','N','C'))));
        //debug($productos);exit;
        $this->set(compact('idCliente'));
    }
    public function ajaxproductoencontrado($idCliente = null,$idventa = null)
    {
        $this->layout = 'ajax';
        //debug($idCliente);
        //debug($this->request->data['Producto']['codigo']);exit;
        if($idventa == null)
        {
            $idventa = $idCliente;
            $venta = $this->Ventasproducto->find('first',array('recursive' => -1,'conditions' => array('Ventasproducto.id' => $idventa)));
            //debug($venta);exit;
            
            $sw = 1;
            $productos = $this->Cortestubo->find('all',array(
            'recursive' => 0,
            'conditions' => array(
            'Cortestubo.estado !=' => array('A','V'),
            'Cortestubo.codigo LIKE' => '%'.$this->request->data['Producto']['codigo'].'%',
            'Cortestubo.sucursale_id' => $venta['Ventasproducto']['sucursale_id']
            )));
        }
        else{
            $sw = 0;
            $productos = $this->Cortestubo->find('all',array(
            'recursive' => 0,
            'conditions' => array(
            'Cortestubo.estado !=' => array('A','V'),
            'Cortestubo.codigo LIKE' => '%'.$this->request->data['Producto']['codigo'].'%'
            )));
        }
        
        //debug($productos);exit;
        $this->set(compact('idCliente','productos','idventa','sw'));
    }
    public function ajaxprestamo($idCliente = null,$idventa = null)
    {
        $this->layout = 'ajax';
        //debug('david');
        //debug($idCliente);
        //debug($idventa);exit;
        $venta = $this->Ventasproducto->find('first',array('conditions' => array('Ventasproducto.id' => $idventa)));
        if($venta['Ventasproducto']['prestado'] == 0)
        {
            $this->Ventasproducto->id = $idventa;
            $this->request->data['Ventasproducto']['prestado'] = 1;
            $this->Ventasproducto->save($this->request->data);
            $sw = 1;
        }
        else{
            $this->Ventasproducto->id = $idventa;
            $this->request->data['Ventasproducto']['prestado'] = 0;
            $this->Ventasproducto->save($this->request->data);
            $sw == 0;
        }
        
        //debug($productos);exit;
        $this->set(compact('sw'));
    }
    public function listaventas($sw = null)
    {
        if($sw != null)
        {
            if($sw == 1)
            {
                $ventas = $this->Ventasproducto->find('all',array('recursive' => 0,'conditions' => array('Ventasproducto.prestado' => 1)));
            }
            else{
                $ventas = $this->Ventasproducto->find('all',array('recursive' => 0,'conditions' => array('Ventasproducto.sucursal_transferida' => null,'Ventasproducto.prestado' => 0)));
            }
        }
        else{
            $ventas = $this->Ventasproducto->find('all',array('recursive' => 0));
        }
        
        //debug($ventas);exit;
        $this->set(compact('ventas'));
    }
    public function listatransferencias()
    {
        $ventas = $this->Ventasproducto->find('all',array('recursive' => 0,'conditions' => array('Ventasproducto.sucursal_transferida !=' => null)));
        //debug($ventas);exit;
        $this->set(compact('ventas'));
    }
    public function ajaxbuscacliente($idventa = null)
    {
        $this->layout = 'ajax';
        $this->set(compact('idventa'));
    }
    public function ajaxedita($idProducto = null,$sw = null)
    {
        //debug($this->request->data);exit;
        $this->layout = 'ajax';
        if(!empty($this->request->data))
        {
            //debug($this->request->data);
            $this->Cortestubo->id = $idProducto;
            $this->Cortestubo->save($this->request->data);
        }
        $cortetubo = $this->Cortestubo->find('first',array('recursive' => 0,'conditions' => array('Cortestubo.id' => $idProducto)));
        if($cortetubo['Cortestubo']['nombreaux'] != null)
        {
            $nombre = $cortetubo['Cortestubo']['nombreaux'];
        }
        else{
            $nombre = $cortetubo['Tubo']['nombre'];
        }
        //debug($cortetubo);exit;
        $this->set(compact('nombre','idProducto','sw'));
    }
    public function corrige_error_codigo()
    {
        $sucursales = $this->Sucursale->find('all');
        foreach($sucursales as $suc)
        {
            $codigo = 0;
            $ventasproductos = $this->Ventasproducto->find('all',array('recursive' => -1,'conditions' => array('Ventasproducto.sucursale_id' => $suc['Sucursale']['id'],'Ventasproducto.sucursal_transferida' => null)));
            foreach($ventasproductos as $ven)
            {
                $codigo++;
                $this->Ventasproducto->id = $ven['Ventasproducto']['id'];
                $this->request->data['Ventasproducto']['codigoventa'] = $codigo;
                $this->Ventasproducto->save($this->request->data['Ventasproducto']);
            }
        }
        
    }
}

?>
